perm filename NBS.MEM[NBS,WD] blob sn#160627 filedate 1976-04-17 generic text, type T, neo UTF8








                           Preliminary Remarks on the

                          National Bureau of Standards


                               Proposed Standard


               Encryption Algorithm for Computer Data Protection





                                    May 1975







                                Whitfield Diffie
                         Information System Laboratory
                       Electrical Engineering Department

                              Stanford University









                                 Acknowledgement

	I am deeply indebted to Professor Martin Hellman for  his  encouragement
and  criticism in the preparation of these remarks.    He has made many valuable
suggestions influencing both the content and readability of the paper.







This work was supported under NSF Grant GK - 33250




	Most  of  the  commentary which follows will be critical of the proposed
encryption algorithm in one way or another. As the algorithm has been put  forth
for  public  scrutiny  and  comments, we feel that this is entirely appropriate.
Nothing that we say, however, should be interpreted as disparaging  the  efforts
of  either  IBM  or the Bureau. On the contrary, we feel that IBM by introducing
the Lucifer family of block cipher systems, has made an outstanding contribution
which  will  have  far  reaching  effects  on  both  theory  and  application in
cryptography.  NBS by undertaking the difficult task of formulating,  evaluating
and  promulgating standards in this field has likewise rendered it an invaluable
service.

	As we have had relatively little time to study the proposed cipher,  and
have had to do so without benefit of the still forthcoming NBS technical note on
the  subject,  these  remarks  are  admittedly  preliminary,  speaking  more  to
questions of use and implementation than to the quality of the algorithm itself,
many aspects of which remain obscure to us.

	We feel that NBS should be congratulated on the quality of the technical
presentation,  which  clearly  conveys the operation of the algorithm.  What has
been published so far leaves many questions  unanswered,  however.  The  precise
contributions of some of its elements are unclear, while the way in which others
are presented suggests an underlying structure which has yet to appear in print.
We  hope  that when the technical note is published it will answer many of these
questions.

	Some of the work described below  is  still  unfinished.  We  expect  to
prepare  a  more  thorough  critique  of the algorithm and its applications at a
later date.


	The  most characteristic and most difficult problem in the evaluation of
an  encryption  algorithm  is  the  question  of  security.   At  present,   the
development  of a theory adequate to guarantee the strength of a cryptosystem is
in its infancy, and current certification efforts rest on mounting a  determined
cryptanalytic  assault on the system under study. Repeated efforts of this sort,
either by parties wishing to participate in  the  standard  making  process,  or
later  by  prospective  users  would be redundant and wasteful.  In the years to
come, we can  expect  an   ever  increasing  application  of  digital  computing
facilities to the handling of monetary transactions and other vital data. Before
these data can be entrusted to a standardized system of protection, it  must  be
subjected to thorough public scrutiny to guarantee that any prospective user may
assure himself without undue hardship  that  its  security  is  above  reproach.
Perhaps  equally  important will be an effort to ensure that the most profitable
course of action for anyone who does breach the system, will be to bring this to
public notice rather than attempt to profit covertly from his knowledge.

	In  order  to  further these goals, we feel that the Bureau of Standards
should undertake to make available  substantially  more  information  about  the
algorithm,  and the reasons for which it was selected. A major component of this
exposition should be a survey of all the various systems submitted  in  response
to  the  two Federal Register solicitations, together with an explanation of the
rationale behind the final choice.

	We understand that IBM has  conducted  both  statistical  and  algebraic
studies  of  the  system. To date, the only products of these studies which have
come to our attention are the group theoretic papers of Grossman and Coppersmith
[5  and  6].  The  rest  of  this material should be brought to light and widely
disseminated both for direct evaluation and as  a  starting  point  for  further
work.



	The notice  "License  Under  Patents"  which  accompanies  the  proposed
encryption algorithm [8], opens:

	"In   the   normal  case,  the  Department  of  Commerce  establishes  a
performance standard which does not  require  the  use  of  any  patent  in  its
implementation.   In  the  present  case,  it  is not possible to meet an urgent
national need for security in computer  systems  with  a  performance  standard.
Rather,  it  will be necessary to establish a design standard which requires the
use of an algorithm."

	We feel that the possibility of  a  performance  standard  is  dismissed
here,  without  adequate  hearing.   Although  it seems certain that one or more
derivative design standards will  be  necessary,  we  feel  that  a  performance
standard,  against  which  proposed ciphers can be judged, is also required, and
should be developed at the earliest possible date.


	A  cryptographic  standard, of any form, must answer conflicting demands
of flexibility and compatibility; a conflict which is more difficult to  resolve
in  this  instance than elsewhere in the data processing field. On the one hand,
cryptography  may  profitably  be  adapted  to  various  applications  differing
substantially  in  the  degree  of  security required, the hardware and software
resources available and other cost and performance considerations. On the other,
cryptographic  communication  between any two parties requires that they hold at
least one specific cryptosystem in common. An adequate national standard  should
speak to both of these issues.

	The  use  of a single design standard offers an advantage more difficult
to obtain in other ways. Any two parties desiring to establish cryptographically
secure communications need only exchange keys via a suitable secure channel such
as registered mail. In particular, the owner of an encrypted file  stored  in  a
public  data  facility,  may  give  another  party  access to the data merely by
mailing him the key.

	The benefits would be substantial, and may be likened to those we  would
derive  from  adopting  a  uniform  format  for magnetic tapes or establishing a
universal programming language. The reasons for avoiding this course  of  action
may  also  be  similar.   Just  as  no  language  has  proven well suited to all
programming applications, it seems likely that no single cryptosystem will  meet
the  needs  of  all  potential  users  equally.   The  gains  to be derived from
compatibility, though substantial, may not justify the cost  of  a  cryptosystem
ill suited to day to day use.

	As  shown  below,  there  are  many  applications for which the proposed
algorithm is not well suited. The blocksize is too short for  efficient  storage
or  shipment  of  large  quantities  of data and too long for efficiency in some
interactive situations.

	If large quantities of data are to be protected cryptographically, using
a  block  cipher,  some form of chaining between blocks is required to guarantee
the integrety of the data with respect to addition, deletion,  or  rearrangement
of blocks [2, 3, and 4]. The security derived from the addition of authenticator
fields varies with the absolute rather than relative sizes of these fields. Thus
if  thirty  bits  of authenticator are included in each block, the chances of an
illegitimate block being found acceptable are one  in  a  billion  whereas  with
twenty  bits  they  are  only  one in a million, regardless of the blocksize. In
circumstances demanding a high degree of security,  authenticators  thirty  bits
long  or  longer  do  not  seem  excessive.   The  inclusion  of  a  thirty  bit
authenticator field in a 64 bit block gives an efficiency of only fifty percent,
which  might  substantially increase storage or transmission costs. A block size
of 256 bits, by comparison, would allow an efficiency of nearly ninety percent.


	At the other end of the scale is full duplex interaction between a  user
and  a  computer, where many user transmissions will be only one character long.
In this case, 32 bits might  suffice  for  the  whole  message  block  including
authentication information.


	The keysize is at best barely adequate. Even today, hardware capable  of
defeating  the system by exhaustive search would strain, but probably not exceed
the budget of a large intelligence organization. As the feasibility  of  such  a
project  depends  on  on  the  cost and speed of the crypto hardware, its future
seems bright. Widespread application  of  such  cryptographic  devices  in  data
processing  can be expected to make a substantial reduction in costs, while some
applications, such as encrypting data on high speed disks  [7],  will  encourage
the development of very fast hardware.

	Suppose,  for  example,  the  proposed  algorithm  were implemented on a
single chip, capable of doing the full operation in one microsecond and  costing
a  dollar.   The  cost  of  a simulator able to do a quarter of a million crypto
operations simultaneously would by substantially less than  a  million  dollars.
With  this degree of parallelism, the key space could be searched in two hundred
and fifty-six billion machine cycles. On average only half of the key space need
be  searched,  permitting  the cryptanalysis to be carried out in about one day,
provided the correct plaintext could be recognized when produced. Though  highly
dependent  on  the particular cryptographic application under attack, this would
certainly be possible in many  cases.   Since  this  technique  yields  the  key
directly,  rather  than just the contents of a single message block, all traffic
enciphered with this key becomes accessible.

	Although cryptanalysis by exhaustive search is far  from  cheap,  it  is
also  far  from  impossible,  and  even  a  small  improvement  in cryptanalytic
technique could dramatically improve the cost performance picture.   We  suggest
doubling the size of the key space to preclude searching.


	The availability of hardware  capable  of  executing  the  block  cipher
quickly  will  not  meet  the  needs  of  many existing facilities, which handle
volumes of sensitive date insufficient to justify the cost  of  interfacing  new
hardware.     These   users   will   require  a  reasonably  efficient  software
implementation.

	From the point of view of software implementation, the design  seems  to
favor  the  IBM  hardware configuration. Implementation on a machine in which 8,
16, 32 and 64 bit quantities are not the natural ones is extremely awkward. Such
machines  include  the GE 635 and 645, Digital PDP 8, 10 and 15, the SDS 940 and
others.

	A study of this problem for a similar encryption  algorithm  implemented
on  the  MIT  Multics  timesharing  system concludes that the most rapid machine
language version of the program would slow down IO by a factor of  four,  making
it suitable for only occasional use [1].

	It  is possible, however, that even on IBM systems speed is difficult to
achieve. Implementations for the IBM 360 described in [3] and [10] give  figures
of several milliseconds per 128 bit block, but these times are not compared with
those for unenciphered system IO.

	We  have  begun,  but  not  completed,   a   program   of   experimental
implementation  of  the cipher in software on the Digital PDP-10. When this work
is finished, we will be in a position to evaluate the overhead  which  would  be
imposed by encryption on such standard processes as editing and copying.


	Some  of  the  objections  raised earlier, regarding flexibility, may be
answered by adoption of application standards in which  the  present  encryption
method  becomes a building block. This would be likely to require use of the IBM
step coding technique, the patent (No.    3,798,360)  for  which  has  not  been
explicitly licensed for public use.


	In light of a diversity of applications at present, and  unknown  future
needs,  we  propose  that  a  more  flexible  standard should be adopted. Such a
standard might specify a parametrized family of block ciphers.    The  principal
parameter would be block length, but flexibility in such things as the number of
rounds and keysize might be provided for the convenience  of  those  wishing  to
implement  low  grade cryptosystems at lower computational expense. Under such a
standard, the recipient of enciphered data would need to  know  the  blocklength
and  number  of  rounds employed as well as the key. In individual applications,
the block size could be chosen for compatibility with data  format,  instruction
set  etc.  At the same time, this family of block ciphers should be founded on a
minimal set of primitive elements; for example a common set of  S-boxes.    This
would  allow  the  construction  of  a general purpose crypto program capable of
preforming the block cipher on blocks of any length. This  program  would  serve
the  needs  of  compatibility,  permitting a facility to process enciphered data
arriving from outside without mounting any special programming effort.   At  the
same  time,  those  ciphers most used in a given facility could be hand coded or
implemented in hardware for efficiency.

	This effort should be accompanied by an attempt  to  integrate  suitable
indicators  into  standard  data  formats.    Such data structures as files in a
storage system, records on a tape, and packets traveling  on  a  network,  would
then  have  built  in  information telling whether they were encrypted and under
what cryptosystem. This would obviate future difficulties in  replacing  systems
which proved insecure or merely uneconomical.


				References

1.	G. Gordon Benedict, "An Enciphering Module for  Multics"  MAC  Technical
	Memorandum 50, MIT July 1974

2.	Horst Feistel, "Cryptographic coding for data-bank privacy"  IBM  Thomas
	J.  Watson Research Center Yorktown Heights, New York, RC-2827, 18 March
	1970, pp ii+56

3.	Horst  Feistel,  William  Notz,  and  J.   Lynn  Smith,   "Cryptographic
	Techniques  for  Machine  to  Machine Data Communications" IBM Thomas J.
	Watson Research Center, Yorktown Heights, New York, 27 December 1971, pp
	i+34

4.	Horst  Feistel,  "Cryptography and Computer Privacy" Scientific American
	Vol. 228, No. 5 May 1973 pp 15-23

5.	Edna Grossman and Don Coppersmith, "Generators for  Certain  Alternating
	Groups  with  Applications  to  Cryptography"  26 Feb 1974, RC 4741, IBM
	Watson Research Center, Yorktown Heights, New York, pp ii+10

6.	Edna Grossman, "Group Theoretic Remarks on Cryptographic  Systems  Based
	on  Two  Types  of  Addition", 26 Feb 1974, RC 4742, IBM Watson Research
	Center, Yorktown Heights, New York, pp ii+15

7.	Richard R. Keys and Eric H. Clamons,  "File  Encryption  as  a  Security
	Tool" The Honeywell Computer Journal, Vol 8 No 2, 1974, pp 90-93

8.	National Bureau of Standards "Encryption  Algorithm  for  Computer  Data
	Protection" Federal Register, 17 March 1975

9.	J.    Lynn  Smith,  "The  Design of Lucifer,  A Cryptographic Device for
	Data Communications" IBM White Plains, N. J., RC 3326

10.	J.  Lynn Smith, William A. Notz, and P.  R.   Osseck,  "An  Experimental
	Application  of  Cryptography  to a Remotely Accessed Data System" Proc.
	ACM Conference 1972, pp 282-297